package com.bestcem.xm.om.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;

import java.util.List;

/**
 * 数据初始化
 *
 * @author YiFang <yifang.zhang@idiaoyan.com>
 * @version v1.0
 * @date 2022/7/1 10:27
 */
public interface InitDataService {

    /**
     * 初始化data
     * @return
     */
    ServiceResult<Void> initData();

    /**
     * 初始化Module
     * @return
     */
    List<String> initModule();

    /**
     * initSubmodule
     */
    void initSubmodule();

    /**
     * initDomain
     */
    void initDomain();

    /**
     * initIndustry
     */
    void initIndustry();

    /**
     * initFlagShipPack
     * @param name
     */
    String initFlagShipPack(String name);

    /**
     * deletePackageCache
     */
    void deletePackageCache();

    /**
     * 层级组织和账号套餐合并
     * 【【用户迁移】套餐管理-企业管理，层级组织和账号套餐需合并】https://www.tapd.cn/57942251/bugtrace/bugs/view?bug_id=1157942251001014577
     *
     * @return 合并结果
     */
    ServiceResult<String> mergePackage();

    /**
     * 层级组织和账号套餐合并数据回滚
     * 【【用户迁移】套餐管理-企业管理，层级组织和账号套餐需合并】https://www.tapd.cn/57942251/bugtrace/bugs/view?bug_id=1157942251001014577
     *
     * @return 回滚结果
     */
    ServiceResult<String> rollbackMergePackage();
}
